This invention relates to digital data processing and, more particularly, to moving and allocating data within a distributed memory system.
High-speed physical storage space on computer systems is limited. Programs that run on those systems often require access to more data than that which can fit into the high-speed stores, referred to as random access memory, or RAM. Sometimes the programs themselves--not just the data they process--consume more memory than is available on the system.
Early programs managed excess data by moving it directly between memory and disk as needed. This required little memory--just the space needed to store the data currently being processed--but slowed processing by requiring frequent disk accesses. Some gains were obtained by accessing data in blocks, reading large amounts of data from disk into arrays, processing those arrays, then writing them back out to disk.
With the advent of virtual memory management systems, data management functions have been taken over by the computer operating system software. Programs written for use with these systems reference large amounts of data as if stored entirely in memory. Often it is not: the virtual memory system itself moves data back and forth between physical memory and disk.
Data management and allocation becomes more complicated in computer systems which employ distributed memory, i.e., a plurality of distinct memory elements storing data from one or more processors. An example of such a system is disclosed by the aforementioned Frank et al, U.S. patent application Ser. No. 07/136,930, filed Dec. 22, 1987, now U.S. Pat. No. 5,055,999. There a digital data processing system is described as including a plurality of processing cells arranged in a hierarchy of rings. Each of the processing cells includes a central processing unit coupled with a memory element. Groups of cells are interconnected along unidirectional bus rings to form units referred to as segments. Communications between cells of different segments are carried out on higher level information transfer domains. These higher level domains are themselves made up of one or more segments, each comprising a plurality of routing elements coupled via a unidirectional bus ring.
A system of the type described by Frank et al does not require a main memory element, i.e., a memory element coupled to and shared by the systems many processors. Rather, data maintained by the system is distributed, both on exclusive and shared bases, among the memory elements associated with those processors. Modifications to a datum stored exclusively in any one processing cell do not have to be communicated along the bus structure to other storage areas. Accordingly, only that data which the processors dynamically share, e.g., sharing required by the executing program themselves, must be transmitted along the bus structure.
Although the Frank et al system provides mechanisms, such as the "recombine" operation for allocating data in the system, still further advances in this area are desirable.
Accordingly, an object of this invention is to provide an improved digital data processing system.
More particularly, an object is to provide a distributed memory digital data processing system with improved memory management.
Still another object of the invention is to provide a mechanism for managing data effectively and reducing paging in a distributed memory system.